package ai.people.netmon.warning.service;

import ai.people.netmon.framework.domain.common.NameValueEntity;
import ai.people.netmon.framework.domain.common.TypeValueEntity;
import ai.people.netmon.framework.domain.warning.entity.WarningAccountAnalysis;
import ai.people.netmon.framework.domain.warning.po.WarningAccountAnalysisPO;
import ai.people.netmon.framework.domain.warning.request.account.AccountModelRequest;
import ai.people.netmon.framework.domain.warning.request.account.WarningAccountAnalysisParam;
import ai.people.netmon.framework.domain.warning.vo.TrendAnalysisRespVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author ligua
* @description 针对表【warning_account_analysis(预警账号分析关系表)】的数据库操作Service
* @createDate 2022-07-28 17:50:38
*/
public interface WarningAccountAnalysisService extends IService<WarningAccountAnalysis> {

    /**
     * 批量查询分析账户
     *
     * @param checkParamList 账号id
     * @return {@link List}<{@link WarningAccountAnalysisPO}>
     */
    List<WarningAccountAnalysisPO> batchQueryAnalysisAccount(List<WarningAccountAnalysisParam> checkParamList);

    /**
     * 添加账户分析
     *
     * @param warningAccountAnalysis 警告账户分析
     */
    void addAccountAnalysis(WarningAccountAnalysis warningAccountAnalysis);

    /**
     * 情感分析
     *
     * @param reqParam 要求参数
     * @return {@link List}<{@link NameValueEntity}<{@link String}, {@link String}>>
     */
    List<TypeValueEntity<String,Long>> emotionAnalysis(AccountModelRequest reqParam);

    /**
     * 趋势分析
     *
     * @param reqParam 要求参数
     * @return {@link List}<{@link TrendAnalysisRespVO}>
     */
    List<TrendAnalysisRespVO> trendAnalysis(AccountModelRequest reqParam);

    /**
     * 标签趋势分析
     *
     * @param reqParam 要求参数
     * @return {@link List}<{@link TrendAnalysisRespVO}>
     */
    List<TrendAnalysisRespVO> tagAnalysis(AccountModelRequest reqParam);

    /**
     * 关键词分析
     *
     * @param reqParam 要求参数
     * @return {@link List}<{@link NameValueEntity}<{@link String}, {@link String}>>
     */
    List<NameValueEntity<String,Double>> keywordAnalysis(AccountModelRequest reqParam);
}
